package edu.tfg.avaliacao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

import edu.tfg.cliente.Cliente;

public class AvaliacaoDAOHibernate implements AvaliacaoDAO{

	private Session sessao;
	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvar(Avaliacao avaliacao) {
		this.sessao.save(avaliacao);
	}

	@Override
	public List<Avaliacao> listar() {
		Criteria lista = sessao.createCriteria(Avaliacao.class);
		return lista.list();
	}

	@Override
	public void excluir(Avaliacao avaliacao) {
		this.sessao.delete(avaliacao);		
	}

	@Override
	public Avaliacao pesquisar(String string) {
		Query consultaComentario = this.sessao
				.createQuery("from Avaliacao c where c.comentario like :comentario");
		consultaComentario.setString("comentario", "%" + string + "%");
		return (Avaliacao) consultaComentario.uniqueResult();
	}

	@Override
	public void alterar(Avaliacao avaliacao) {
		this.sessao.update(avaliacao);		
	}

	@Override
	public Avaliacao pesquisarPorCodigo(Integer codigoString) {
		// return (Cliente) this.sessao.get(Cliente.class, codigo);
		return null;
	}

}
